﻿using System;

namespace PropertyExpression.TypedSqlBuilder
{
    public static class Query
    {
        public static ITuple<T1, T2, T3> To2<T1, T2, T3>(T1 item1, T2 item2, T3 item3)
        {
            throw new NotImplementedException();
        }

        public static ITuple<T1, T2> To<T1, T2>(T1 item1, T2 item2)
        {
            throw new NotImplementedException();
        }

        public static ISelect<TEntity> Select<TEntity>()
        {
            throw new NotImplementedException();
        }

        public static IWhere Where(IValue<bool> value)
        {
            throw new NotImplementedException();
        }

        public static ITable<TEntity> Table<TEntity>()
        {
            throw new NotImplementedException();            
        }

        public static IFrom<TSelectEntity> From<TEntity, TSelectEntity>(
            this ITable<TEntity> table,
            Func<IRow<TEntity>, IJoin<TSelectEntity>> innerJoin)
        {
            throw new NotImplementedException();
        }

        public static IInnerJoin<TSelectEntity> InnerJoin2<TEntity, TSelectEntity>(
            this ITable<TEntity> table,
            Func<IRow<TEntity>, ITuple<IValue<bool>, IWhere, ISelect<TSelectEntity>>> func)
        {
            throw new NotImplementedException();
        }

        public static IInnerJoin<TSelectEntity> InnerJoin<TEntity, TSelectEntity>(
            this ITable<TEntity> table,
            Func<IRow<TEntity>, ITuple<IValue<bool>, IInnerJoin<TSelectEntity>>> func)
        {
            throw new NotImplementedException();
        }

    }
}
